package com.dyz.leetcode._07_hashSearch;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class _242_isAnagram {
    public boolean isAnagram(String s, String t) {
        if(s.length()!=t.length()){return false;}
        char[] cs = s.toCharArray();
        char[] ct = t.toCharArray();
        Arrays.sort(cs);
        Arrays.sort(ct);
        return Arrays.equals(cs, ct);
    }
    public boolean isAnagram2(String s, String t) {
        if (s.length() != t.length()) {return false;}
        // 1. 统计字符串 s 中每个字符出现的次数
        Map<Character, Integer> map = new HashMap<>();
        for (char c : s.toCharArray()) {
            if (map.containsKey(c)) {
                map.put(c, map.get(c) + 1);
            } else {
                map.put(c, 1);
            }
        }

        // 2. 减去字符串 t 中字符出现的次数，如果出现的次数出现小于 0 的话，则返回 false
        for (char c : t.toCharArray()) {
            map.put(c, map.getOrDefault(c, 0) - 1);
            if (map.get(c) < 0) return false;
        }

        return true;
    }

}
